package com.yhd.entity.wx;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("支付成功回调通知参数vo")
public class PaySuccessNoticeVo implements Serializable {
    private static final long serialVersionUID = -3964296887309075463L;
    @ApiModelProperty("服务商应用ID")
    private String sp_appid;
    @ApiModelProperty("服务商户号")
    private String sp_mchid;
    @ApiModelProperty("子商户应用ID")
    private String sub_appid;
    @ApiModelProperty("子商户号")
    private String sub_mchid;

    @ApiModelProperty("商户订单号")
    private String out_trade_no;

    @ApiModelProperty("微信支付订单号")
    private String transaction_id;

    @ApiModelProperty("交易类型")
    private String trade_type;

    @ApiModelProperty(
            "交易状态，枚举值：SUCCESS：支付成功 REFUND：转入退款 " +
            "NOTPAY：未支付 CLOSED：已关闭 REVOKED：已撤销（付款码支付） " +
            "USERPAYING：用户支付中（付款码支付） PAYERROR：支付失败(其他原因，如银行返回失败)")
    private String trade_state;

    @ApiModelProperty("交易状态描述")
    private String trade_state_desc;

    @ApiModelProperty("付款银行")
    private String bank_type;

    @ApiModelProperty("附加数据")
    private String attach;

    @ApiModelProperty("支付完成时间")
    private String success_time;

    @ApiModelProperty("支付者")
    private PaySuccessNoticePayer payer;

    @ApiModelProperty("订单金额")
    private PaySuccessNoticePayer amount;
//
//    @ApiModelProperty("场景信息")
//    private PaySuccessNoticeSceneInfo scene_info;
//
//    @ApiModelProperty("优惠功能")
//    private PaySuccessNoticePromotionDetail promotion_detail;
}
